1. The Field of the Invention
The present invention relates generally to data transmission systems and components. More particularly, embodiments of the present invention relate to using description files to configure components in a distributed system.
2. The Relevant Technology
Nearly all computing devices include a processor and one or more other components, including registers. These components can be configured in various different ways to cause the computer device to operate in a specified manner. Registers are used to store configuration data (e.g., for configuring other components) that is to be or has been processed by the processor. For example, when a modem is to be configured for operation at 56 Kbps, a register value in the modem can be altered to indicate that configuration setting.
In many computing environments, direct access to components is not needed. For example, in a home or office computing environments, most users have no knowledge (and probably do not care) how computing device components operate. In these computing environments, system software (e.g., an operating system, compiler generated instructions, etc.) automatically controls component access and configuration Automated component access allows users to operate most, if not all, applications (e.g., word processing, electronic mail, communication programs, etc) without having detailed knowledge of the components in a corresponding computing device.
Even programmers that program in high-level languages (e.g., C++, C#, Visual Basic) do not necessarily have to have detailed knowledge of component operation. For example, a programmer could write source code that changes modem settings (through Application Program Interfaces) without having to include instructions that expressly reference any components. During compilation of the source code into computer-executable instructions (e.g., machine code), the compiler would include additional computer-executable instructions for appropriately accessing components.
However, in some environments, more direct component control is beneficial. For example, in network testing environments, network testing devices may need to be precisely configured for operation in many different (and sometimes adverse) network conditions. Configuring network testing devices can include modifying configuration options, based on current testing needs, to cause various components in the testing device to operate in a specified manner. Thus, a technician or administrator can change configuration options to configure a network testing device. Since changes to network testing device components may occur quite frequently, network testing devices often include software for interfacing directly with network testing device components.
Development of component access software for interfacing directly with network testing device components typically includes a system programmer developing a series of functions for accessing the components. For example, a network testing device may be configured with a clock, a control module, a memory module, etc. Accordingly, the system programmer can develop customized component access functions that directly access the clock, the control module, the memory module, etc, for purposes of configuring the network testing device. Internal to the component access functions would be hard-coded values representing component addresses.
Component access software can also include a number of other customized functions for changing other network testing device options (e.g., protocol, transmission speed, buffer sizes, etc). Accordingly, internal to each of these other customized functions would also be a hard-coded value representing the component addresses. Thus, as the number of configuration options increase, so does the number of customized functions included in a network testing device's component access software. A coding error in any one customized function can cause a network test to fail or otherwise operate improperly (e.g., capture incorrect network traffic, store captured data in an incorrect buffer, etc). Since a customized function is typically utilized for each configuration option, network testing devices with increased numbers of configuration options have a corresponding increased chance of operating improperly during a test.
Therefore systems, methods, computer program products, and data structures for using description files to configure components in a distributed system would be advantageous.